#include "refined_abstraction.hpp"
#include "imp1.hpp"
#include "imp2.hpp"

int main(int argc, char const* argv[])
{
	AbstractImp *imp1 = new Imp1();
	Abstraction *abs1 = new RefinedAbstraction(imp1);
	abs1->operation();

	delete abs1;
	delete imp1;

	cout<<"----------------------"<<endl;

	AbstractImp *imp2 = new Imp2();
	Abstraction *abs2 = new RefinedAbstraction(imp2);
	abs2->operation();

	delete abs2;
	delete imp2;

	return 0;
}
